#include <iostream>
using namespace std;

class Draw {
private:
    int height; // minimum of 3 rows for drawing shapes properly
public:
    Draw(int h) : height(h) {}
    void drawTriangle() {
        for (int i = 1; i <= height; ++i) {
            for (int j = 0; j < i; ++j) {
                cout << '*';
            }
            cout << endl;
        }
    }
    void drawRectangle() {
        for (int i = 0; i < height; ++i) {
            for (int j = 0; j < height; ++j) {
                cout << '*';
            }
            cout << endl;
        }
    }
    void drawSquare() {
        for (int i = 0; i < height; ++i) {
            for (int j = 0; j < height; ++j) {
                cout << '*';
            }
            cout << endl;
        }
    }
    void drawParallelogram() { // Assuming parallelogram with left alignment for simplicity
        for (int i = 0; i < height; ++i) {
            for (int j = 0; j < i + 1; ++j) { // Increasing spaces before '*' for parallelogram shape.
                cout << '*';
            }
            cout << endl;
        }
    }
};

int main() {
    Draw d(5); // Example height of 5 for drawing shapes clearly.
    d.drawTriangle();
    d.drawRectangle();
    d.drawSquare(); // This will be the same as drawRectangle in terms of output but is requested separately.
    d.drawParallelogram(); // Simplified version for demonstration purposes.
    return 0;
}
